package sistemadeleiloes.control;

/**
 *
 * @author William
 */
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import sistemadeleiloes.dao.LeilaoDAO;
import sistemadeleiloes.model.Leilao;
import sistemadeleiloes.model.Usuario;

public class LeilaoController {

    public boolean encerrarLeilao(int id, String senha) throws Exception {
        LeilaoDAO lDAO = new LeilaoDAO();
        boolean encerrado;

        encerrado = lDAO.encerrarLeilao(id, senha);
        if (encerrado) {
            //this.enviarEmail(leilao.getMaiorLance().getParticipante());
        }
        return encerrado;

    }

    public void arrematarLeilao(Usuario participante, Leilao leilao) throws Exception {
        leilao.arrematar(participante);
        //this.encerrarLeilao(leilao, leilao.getSenha());
    }

    private boolean enviarEmail(Usuario participante, Leilao l) throws Exception {
        //ENVIA E-MAIL AO VENCEDOR DO LEILÃO E LANÇA EXCEÇÃO CASO DÊ PAU
        //RMI? Client/Server
        String from = "leilao@lei.com";
        String host = "localhost";
        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(properties);
        try {
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(participante.getEmail()));

            message.setSubject("Vencedor do leilão");
            message.setText("Parabéns " + participante.getNome() + "! Você foi o vencedor do leilão " + l.getId() + "!");
            Transport.send(message);
            System.out.println("Mensagem ao vencedor " + participante.getNome() + ". Leilao: " + l.getId());

            return true;
        } catch (MessagingException ex) {
            ex.printStackTrace();
            return false;
        }
    }
}
